home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-11-15 | 6.2 KB | 151 lines | [TEXT/pdos] |
- Apple II
- Technical Notes
- _____________________________________________________________________________
- Developer Technical Support
-
- Mouse
- #6: MouseText Characters
-
- Revised by: Matt Deatherage January 1989
- Revised by: Rilla Reynolds November 1985
-
- This Technical Note describes the MouseText character set which is available
- on all currently produced Apple II computers.
- Changed since November 1988: Corrected typographical errors in the BASIC
- and assembly language program examples.
- _____________________________________________________________________________
-
- In unenhanced Apple IIe computers, the alternate character set contained two
- sets of inverse uppercase characters. In the enhanced Apple IIe, and in all
- Apple IIc and IIGS computers, one set of inverse uppercase characters is
- replaced by a MouseText character set. MouseText is a set of graphical
- characters designed to allow Apple II computers to display a desktop metaphor
- on the text screen. The Apple II Desktop Toolkit uses these characters, as do
- applications like AppleLink-Personal Edition.
-
- If your program used the set of inverse uppercase characters which were
- replaced by MouseText (the set mapped to ASCII values $40-$5F), your program
- will display MouseText characters instead of inverse uppercase characters on
- all currently-produced Apple II computers. If your program used the other set
- of inverse uppercase characters (ASCII values $00-$1F), it will display
- inverse capital characters as expected.
-
- The following will help you identify if the changes affect you or not.
-
- 1. If your program is written entirely in BASIC or Pascal or your
- assembly language program calls the COUT routine to put characters
- on the screen, you are not affected. The only exception would be
- if you print (POKE) inverse characters directly to the text screen
- in BASIC.
- 2. If your program uses the standard character set (checkerboard
- cursor) you are not affected.
- 3. If your program is using the alternate character set (solid
- cursor) and is directly storing values (via POKE) to the text
- display area, you will encounter problems if your character values
- are in the range from 64 ($40) to 95 ($5F). To recreate the
- original display, use values in the range from 0 ($0) to 31 ($1F)
- instead. Note that these lower values display as inverse
- uppercase characters on older machines as well.
-
-
- Following are the methods recommended for accessing MouseText characters from
- various languages:
-
- AppleSoft BASIC
-
- 1. Turn on the video firmware with PR#3 (if under DOS 3.3 or
- ProDOS, use PRINT CHR$(4);"PR#3")
- 2. Enable MouseText characters by printing an ASCII 27 ($1B) to
- the screen.
- 3. Set inverse printing mode by printing an ASCII 15 ($0F) to the
- screen.
-
- To stop displaying MouseText characters:
-
- 1. Disable MouseText characters by printing an ASCII 24 ($18) to
- the screen.
- 2. Set normal print mode (if desired) by printing an ASCII 14
- ($0E) to the screen.
-
- This short BASIC program displays all MouseText characters under DOS 3.3 and
- ProDOS:
-
- 10 D$=CHR$(4)
- 20 PRINT D$;"PR#3": REM Turn on the video firmware
- 30 PRINT:REM This is so the screen won't be in inverse
- 40 PRINT CHR$(15):REM Set inverse mode
- 50 PRINT CHR$(27);"ABCEDFGHIJKLMNOPQRSTUVWXYZ@[]^_\";CHR$(24)
- 60 PRINT CHR$(14):END
-
- Assembly Language
-
- Assembly language programs are expected to follow the same procedure as
- AppleSoft BASIC. Use calls to COUT to print MouseText characters to the
- screen. The following is a sample assembly language program which displays
- two MouseText characters (which create a folder icon), along with their
- inverse uppercase equivalents:
-
- START LDA #$A0 ;USE A BLANK SPACE TO
- JSR $C300 ;TURN ON THE VIDEO FIRMWARE
- LDY #0 ;INITIALIZE COUNTER
- LOOP LDA STR,Y ;GET VALUE
- JSR $FDED ;SEND IT THROUGH THE COUT ROUTINE
- INY
- CPY STRLEN
- BNE LOOP ;=>NOT DONE YET
- RTS
- STR DFB $1B,$58,$59,$18,$58,$59
- ;MOUSETEXT ON, SHOW, MOUSETEXT OFF, SHOW
- STRLEN EQU *-STR ;LENGTH OF STR
-
- Note: Using MouseText on the text screen by directly poking or
- storing MouseText character values into the text buffer is not
- supported by Apple at this time. Should the MouseText character
- set require remapping in the future, those programs which use the
- methods outlined in this Note should still work with any new
- mapping. Those which directly store MouseText values run the
- strong risk of display failure under a new mapping.
-
-
- Apple II Pascal
-
- 1. Output a CHR(27), an escape character, to enable MouseText.
- 2. Output a CHR(15) to turn on inverse video.
- 3. Output the appropriate capital letter for the desired MouseText
- character.
-
- A Pascal sample program:
-
- PROGRAM OUTPUT_MOUSETEXT
- VAR CMD:PACKED ARRAY[0..1] OF 0..255
- BEGIN
- CMD[0]:=27; CMD[1]:=15;
- UNITWRITE(1,CMD,2); {turn on MouseText mode}
- {code to display MouseText
- .
- .
- .
- }
- CMD[0]:=24;
- UNITWRITE(1,CMD,1); {turn off MouseText mode}
- END
-
- Pictorial descriptions of the MouseText character set may be found in the
- Apple IIe Technical Reference Manual, the Apple IIc Technical Reference
- Manual, and the Apple IIGS Hardware Reference.
-
- Note: The pictures of MouseText characters in these manuals differ
- from early implementations. In early MouseText character sets,
- the icons mapped to the letters F and G combined to form a
- "running man." In current production, these letters are different
- pictures (an inverse carriage return symbol and a window title bar
- pattern) which form no picture when placed next to each other.
- Programs should not attempt to use the running man MouseText
- characters.
-
-
- Further Reference
- _____________________________________________________________________________
- o Apple IIGS Hardware Reference
- o Apple IIe Technical Reference Manual
- o Apple IIc Technical Reference Manual